<html>
    <head>
        <title>缓存实体对象</title>
    </head>
    <body>
        <script>
            /*
                        一、缓存实体对象

                                IEntityCache<TEntityCacheItem,Tkey> 是ABP为缓存实体提供的简单服务。假设你有一个Product实体，如下所示：

                                        public class Product : AggregateRoot<Guid>
                                        {
                                            public string Name { get; set; }
                                            public string Description { get; set; }
                                            public float Price { get; set; }
                                            public int StockCount { get; set; }
                                        }

                                如果要缓存此实体，应首先配置依赖注入系统以在模块类的 ConfigureServices 方法中注册 IEntityCache服务：

                                        context.Services.AddEntityCache<Product,Guid>()  // 实体缓存系统将执行对象映射

                                由于实体缓存系统将执行"对象映射"（从 Product 到 ProductDto）,我们应该配置对象映射。  这里使用AutoMapper 来完成映射：

                                        public class MyMapperProfile : Profile
                                        {
                                            public MyMapperProfile()
                                            {
                                                CreateMap<Product, ProductDto>();
                                            }
                                        }

                                现在，你可以在任何需要的地方注入 IEntityCache<Product,Guid> 服务：

                                        public class ProductAppService : ApplicationService, IProductAppService
                                        {
                                            private readonly IEntityCache<ProductDto, Guid> _productCache;

                                            public ProductAppService(IEntityCache<ProductDto, Guid> productCache)
                                            {
                                                _productCache = productCache;
                                            }

                                            public async Task<ProductDto> GetAsync(Guid id)
                                            {
                                                return await _productCache.GetAsync(id);
                                            }
                                        }
                                        
                                请注意， _productCache.GetAsync() 方法已经返回了一个 ProductDto 对象，因此我们可以直接从应用程序服务返回它。

                    */

        </script>
    </body>
</html>